Systems and methods for multi-level switching of data frames

ABSTRACT

Systems, methods and apparatus for multi-level switching in a network comprising a plurality of link-state routing areas. In some embodiments, a network device connecting at least two link-state routing areas is configured to receive a data frame from an area. The network device may be configured to determine whether the data frame is to be transmitted to a different area and to determine whether to modify at least one field of the data frame prior to transmitting the data frame based on whether the data frame is to be transmitted to a different area. The network device may be further configured to determine whether to block the data frame based on whether the data frame is to be transmitted to a different area and based on a field of the data frame.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 61/418,124, titled “Switching, RBridge and ARP/ND Improvements,” filed on Nov. 30, 2010, which is incorporated herein by reference.

BACKGROUND

I. Computer Networks

In a computer network, a group of computers and/or other devices communicate with each other via one or more communication links. One example of a network includes a pair of end stations each having a network interface, where the interfaces are connected to each other via a point-to-point network link. Another example of a network is shown in FIG. 1 and includes multiple computers 105A-O each having one or more network interfaces. Each interface is connected to one or more other interfaces either directly or via one or more of switches 110A-D. For instance, as shown in FIG. 1, station 105A may be connected to station 105B via switch 110B, and station 105H may be connected to station 105I via a shared link to switch 110D. Yet another example of a network is the Internet, which is a network having many interconnected subnetworks.

Data to be transmitted, such as a file, is often divided into smaller units of data to be transmitted separately over one or more networks and re-assembled at a receiving computer. Each such unit of data is commonly called a “frame,” although it should be appreciated that data may be divided into frames in any suitable way, for example, according to any suitable communication protocol.

Any suitable communication link may be used to communicate data frames between network interfaces. For example, a link may be wired (e.g., electrical or optical) or wireless (e.g., radio, microwave, or infrared). A link may also be virtual (i.e., simulated).

Many network communication protocols have been developed over the years. A common model is the layered networking model, where communication functions are grouped into logical layers. For example, in an Open Systems Interconnection (OSI) model, there are seven layers arranged from top to bottom, each layer providing services to layers above and receiving services from layers below. For instance, Layer 2 (also known as the Data Link Layer) receives data transmission and reception services from Layer 1 (also known as the Physical Layer), and provides physical addressing services to Layer 3 (also known as the Network Layer).

Concepts of communications protocols layers, such as Layer 3 and Layer 2 of an OSI model, are explained in ITU-T (International Telecommunications Union-Telecommunications Standardization Sector) Recommendation X.200, “Information Technology-Open Systems Interconnection-Basic Reference Model: The Basic Model,” which is incorporated herein by reference.

II. Local Area Networks

In a local area network (also referred to as a LAN or local network), frames may be delivered after transiting the network with source and destination Layer 2 addresses, or interface source and destination addresses, associated with the frames unchanged or changed only to a form easily convertible to the original Layer 2 addresses.

It should be appreciated that local networks need not be “local” in a geographical sense. A local network may include components located in a geographical area of any suitable size (e.g., including multiple cities, states, and/or countries), and may even include components in outer space.

III. Types of Data Frames

Data frames traversing a network may be classified as being either “multi-destination” or “individually addressed.” A “multi-destination” frame is a frame addressed to multiple destinations (e.g., multiple network interfaces). By contrast, an “individually addressed” frame is a data frame addressed to a single destination (e.g., a single network interface), and is sometimes called a “unicast” frame.

There are different types of multi-destination frames. For example, a “broadcast” frame is a multi-destination frame intended to be delivered to all interfaces in a local network. As another example, a “multicast” frame is a multi-destination frame intended to be delivered to a subset of such interfaces.

In some instances, a multi-destination frame may, despite being addressed to multiple interfaces, be delivered to only one interface or none at all. For example, this may happen when one or more interfaces to which the multi-destination frame is addressed do not exist in the local network.

IV. Virtual LANs

A local network may be subdivided into multiple overlaid logical networks called Virtual LANs or VLANs. A local network divided into VLANs may have the same physical structure as if not so divided. However, each data frame may, in some fashion, be labeled or categorized to indicate a VLAN to which the data frame belongs. Furthermore, a network interface may, in some fashion, be restricted or categorized in some suitable manner, so that switches may only send frames of certain labeling or categorization through interfaces with corresponding categorization. For example, certain network interfaces may be associated with a particular type of traffic associated with a subset of VLANs, such as input traffic or output traffic, so that only that type of traffic associated with that subset of VLANs is sent through the interfaces.

In a local network supporting such VLANs, there may be end stations or switches that are unaware of VLANs and that receive and transmit unlabeled frames on one or more network interfaces of the end stations or switches. Such an unlabeled frame may be classified by an interface of the first VLAN-aware switch at which the frame arrives, to indicate a VLAN to which the frame belongs. The classification may be based on one or more values of one or more fields within the frame. Moreover, there may be VLAN-aware end stations that receive and transmit VLAN-labeled frames on one or more network interfaces, and/or classify unlabeled frames received on one or more interfaces as being in one or more specific VLANs.

A VLAN may include nested sub-VLANs and, likewise, may be enclosed by other higher-level VLANs. Thus, a “network” in the present disclosure may refer to any physical or virtual network, which may or may not include one or more subnetworks, and may or may not be included in one or more other networks as a subnetwork.

SUMMARY

Systems, methods and apparatus are provided for multi-level switching of data frames.

In some embodiments, a method is provided for use by at least one network device operating in a network comprising a plurality of link-state routing areas, the at least one network device connecting a first link-state routing area of the plurality of link-state routing areas with at least one other link-state routing area of the plurality of link-state routing areas, the method comprising acts of: (a) receiving at least one data frame from the first link-state routing area; (b) determining whether the at least one data frame is to be transmitted to a second link-state routing area of the plurality of link-state routing areas that is different from the first link-state routing area; and (c) determining whether to modify at least one field of the at least one data frame prior to transmitting the at least one data frame based at least in part on a result of the act (b).

In some further embodiments, a method is provided for use by at least one network device operating in a network comprising a plurality of link-state routing areas, the at least one network device connecting a first link-state routing area of the plurality of link-state routing areas with at least one other link-state routing area of the plurality of link-state routing areas, the method comprising acts of: (a) receiving at least one data frame from the first link-state routing area; (b) determining whether the at least one data frame is to be transmitted to a second link-state routing area of the plurality of link-state routing areas that is different from the first link-state routing area; and (c) determining whether to block the at least one data frame based at least in part on a result of the act (b) and at least one field of the at least one data frame.

In some further embodiments, an apparatus is provided, comprising at least one network device configured to operate in a network comprising a plurality of link-state routing areas, the at least one network device further configured to connect a first link-state routing area of the plurality of link-state routing areas with at least one other link-state routing area of the plurality of link-state routing areas, the at least one network device further configured to perform acts of: (a) receiving at least one data frame from the first link-state routing area; (b) determining whether the at least one data frame is to be transmitted to a second link-state routing area of the plurality of link-state routing areas that is different from the first link-state routing area; and (c) determining whether to modify at least one field of the at least one data frame prior to transmitting the at least one data frame based at least in part on a result of the act (b).

In some further embodiments, an apparatus is provided, comprising at least one network device configured to operate in a network comprising a plurality of link-state routing areas, the at least one network device further configured to connect a first link-state routing area of the plurality of link-state routing areas with at least one other link-state routing area of the plurality of link-state routing areas, the apparatus further configured to perform acts of: (a) receiving at least one data frame from the first link-state routing area; (b) determining whether the at least one data frame is to be transmitted to a second link-state routing area of the plurality of link-state routing areas that is different from the first link-state routing area; and (c) determining whether to block the at least one data frame based at least in part on a result of the act (b) and at least one field of the at least one data frame.

It should be appreciated that all combinations of the foregoing concepts and additional concepts discussed in greater detail below (provided such concepts are not mutually inconsistent) are contemplated as being part of the inventive subject matter disclosed herein. In particular, all combinations of claimed subject matter appearing at the end of this disclosure are contemplated as being part of the inventive subject matter disclosed herein.

BRIEF DESCRIPTION OF DRAWINGS

The accompanying drawings are not necessarily drawn to scale. For purposes of clarity, not every component may be labeled in every drawing.

FIG. 1 shows an example of an illustrative network having connected thereto multiple computers, in accordance with some embodiments.

FIG. 2 shows an example in which frames are transmitted between link-state routing areas, in accordance with some embodiments.

FIG. 3 shows an example in which multi-destination frames are transmitted between link-state routing areas, in accordance with some embodiments.

FIG. 4A shows an illustrative process that may be performed by a network device to modify a source label in a data frame transmitted between link-state routing areas, in accordance with some embodiments.

FIG. 4B shows an illustrative process that may be performed by a network device to modify a destination label in a data frame transmitted between link-state routing areas, in accordance with some embodiments.

FIG. 5 shows an illustrative process that may be performed by a network device to determine whether to transmit a frame from one link-state routing area to anther link-state routing area, in accordance with some embodiments.

FIG. 6 shows an illustrative process that may be performed by a network device to determine whether to modify a data frame in transmitting the frame from one link-state routing area to another link-state routing area, in accordance with some embodiments.

FIG. 7 shows, schematically, an illustrative computer on which various inventive aspects of the present disclosure may be implemented.

DETAILED DESCRIPTION

The inventor has recognized and appreciated various disadvantages of conventional techniques for transmitting data frames (or, interchangeably, “data packets”) in a switched computer network.

Packet switched computer networks operate by the forwarding of data packets based on labels (or, interchangeably, “addresses”) in those data packets. The forwarding along a full path from a network origin to a network destination of a data packet may involve encapsulation (e.g., including, as content of a first message for a first communication protocol, a second message for a second communication protocol), decapsulation (e.g., extracting a first message for a first communication protocol from a second message for a second communication protocol), and/or substitution of new values for label fields at one or more points along the path.

Such forwarding techniques include “link-state routing,” as generally known in the art. Specific examples of link-state routing include IS-IS and OSPF. “IS-IS” refers to the Intermediate System to Intermediate System routing protocol standard whose specification includes ISO/IEC 10589:2002 (“Intermediate System to Intermediate System Intra-Domain Routing Information Exchange Protocol for Use in Conjunction with the Protocol for Providing the Connectionless-Mode Network Service (ISO 8473)”), which is incorporated herein by reference. The IS-IS standard is further extended by IETF (Internet Engineering Task Force) RFC 1195 (“Use of OSI IS-IS for Routing in TCP/IP and Dual Environments”) and IETF RFC 6165 (“Extensions to IS-IS for Layer-2 Systems”), each of which is incorporated herein by reference. “OSPF” refers to the Open Shortest Path First routing protocol standard whose specification includes IETF RFC 2328 (“OSPF Version 2”), which is incorporated herein by reference.

The inventor has recognized and appreciated that, as networks increase in the number of end points and switching nodes, the size of tables used at each switch to determine how to forward a packet tends to increase. Methods to summarize address or label information so that forwarding information may be looked up in such tables based on a smaller amount of data may be desirable so as to make practical large network operation at reasonable cost. If such addresses or labels are not summarized or condensed, then either (1) the tables may become too large so that the hardware for using such large tables is too slow and/or too expensive, or (2) too much data may be flooded or misdirected to certain areas, rather than being forwarded directly to any specific station or stations for which the data is intended, because tables are kept small, which may lead to table overflow and loss of information needed for accurate forwarding.

The inventor has further recognized and appreciated that, when addresses are hierarchical, a portion of an address may indicate an area where a device with that address resides. As the area of residence becomes more narrow, the portion of the address used to indicate the area may become larger. Furthermore, when addresses are flat, there may be no such structure, so that any address may reside anywhere. Examples of flat addresses include global 48-bit IEEE (Institute of Electrical and Electronic Engineers) MAC (Media Access Control) addresses.

Some Routing Bridges (or “RBridges”) map 48-bit IEEE 802 MAC addresses into automatically allocated 16-bit “nickname” labels for forwarding look-up. RBridges are switch devices that implement the IETF TRILL (Transparent Interconnection of Lots of Links) protocol standard whose base specification includes the following IETF RFCs that are incorporated herein by reference: RFC 6325 (“Routing Bridges (RBridges): Base Protocol Specification”) and RFC 6326 (“Transparent Interconnection of Lots of Links (TRILL) Use of IS-IS”). Shortest Path Bridges (“SPBs”) are another kind of switch devices that may summarize MAC addresses into smaller labels. For RBridges, a smaller label may be a 16-bit “nickname,” while for SPBs a smaller label may be a 20-bit “SPSource ID”.

In some implementations, original MAC addresses and summarizing labels may be “flat” addresses. As such, the values of these addresses and labels may convey no locations information. Thus, routing tables at networks nodes may include information on each flat address value that may be used to determine how to forward a packet having that flat address value. By contrast, a packet having a hierarchical address may be forwarded based on a portion of the address itself, without using additional information.

Both of the TRILL and SPB standards referenced above currently specify the use of a link-state protocol operating at a single level. The inventor has recognized and appreciated two potential problems with such link-state routing systems.

First, the time and computational effort expended to set up switching tables within an area may increase with the size of the area. For this reason, link-state routing protocols such as IS-IS and OSPF provide for multiple levels, so as to replace setting up switching tables in one large area with setting up switching tables for many smaller areas. In some implementations, the smaller areas may include a number of level 1 areas and one or more level 2 area that interconnects the level 1 areas. Computations for such smaller areas may require much less computation and may converge more rapidly than computations for one large area. However, this approach may lead to some loss in optimality as a resulting path may only be piece-wise optimal within each area traversed by the path.

Second, as a network gets bigger, shorter labels (e.g., nicknames for RBridges, SPSourceIDs for SPBs, or other forms of short labels for other protocols) may run out, and/or routing tables may become excessively large.

Accordingly, in various embodiments, improved systems and methods are provided for multi-level switching of data frames.

For link-state routing with N nodes in a single area at a single level, the computational effort to calculate a least cost path from a node to each other node using an optimized Dijkstra algorithm may be on the order of:

N*log(N).

The inventor has recognized and appreciated that, with multi-level routing, this area may be split into approximately square root of N many level 1 areas, each level 1 area containing square root of N many nodes, and a single level 2 area to interconnect the level 1 areas. Thus, the routing calculation effort is reduced to the order of:

sqrt(N+1)*log(N+1)/2,

Further approximating and ignoring multiplicative factors, the routing calculation effort is reduced to the order of:

sqrt(N)*log(N).

Thus, the level of effort for the routing task may grow less than linearly, as opposed to more than linearly, with the number of switching nodes. This may allow a much larger network to be handled with a reasonable computational load on the nodes for routing calculations. This may represent a substantial improvement, as such routing calculation may be done in an area whenever there is a change in the topology of that area, such as a change due to failure, repair, removal, or addition of a switch or link.

The inventor has further recognized and appreciated that, even with the above-described technique of splitting a large area into multiple small areas, it may still be advantageous to have unique switching node labels throughout an entire contiguous set of switches being used (e.g., a multi-area TRILL network or a Shortest Path Bridging region). This may exhaust available labels, so that larger labels may instead be used. Furthermore, routing tables may become very large, because labels for all individual nodes may be listed.

Accordingly, in various embodiments, techniques are provided for re-using labels in different areas of a contiguous set of switches. This may permit the use of a smaller number of different labels, which may in turn reduce the size of routing tables.

In some embodiments, where the same labels may be used in different link-state routing areas, a set of labels may be made available for use by level 1 switches in each area. In some further embodiments, each area may also have one or more labels that identify the area itself throughout an entire contiguous set of switches. Such area-identifying labels may be unique across an entire set of areas, and may be determined in various ways. In one example, a pre-defined subset of labels unique across the set of contiguous switches may be used as used as area labels. In another example, labels that are actually in use as area labels may be advertised into every level 1 area in such a way that local switches in each area may be configured to avoid using such advertised area labels.

In some embodiments, where switch labels may be duplicated between areas, adjustments may be made in data packets that go from one area to another to avoid confusion. For example, a label for a data frame may be changed when the frame moves between areas or levels during switching (e.g., when the frame moves from a level 1 area to a level 2 area or vice versa). By contrast, in some embodiments, no such adjustments may be made when forwarding packets that may be handled entirely within a single level 1 area.

In some further embodiments, when an inter-area packet is processed by a switch or is first sent in its origin area, the packet may initially appear to be directed to a destination label that identifies or is associated with an area where the destination of the packet is to be found. Moreover, the packet's source label may be either a label for the area where the packet is originating, or a label related to an initial switch or link the packet comes from or through. In the latter case, when the packet is delivered into the destination area, it may be desirable to have as the source label the label for the area where the packet has originated. Furthermore, when the packet is delivered into the destination area, it may be desirable to have as the destination label a local label of a final switch or link that may deliver the packet.

The above may be accomplished by modifying the destination label when the packet enters its destination area and modifying the origin label when the packet leaves its origin area. The destination label modification on entering the destination area may be to change the destination label from a label for the destination area to a label for a specific destination switch or link, and may be done by looking up a more detailed address within the data packet to determine that specific destination switch or link. The modification of the origin label on leaving the origin area may be to replace the specific origin switch or link label with a label identifying the origin area.

The inventor has recognized and appreciated that border routers that connect levels may also be desirable places to perform mappings of, or filtering based on, VLANs, priorities, class-of-service, and finer-grained labels such as the IEEE Service IDentifier (I-SID). Alternatively, frames selected by VLAN or other indicia, such as Ethertype or priority, may be dropped, instead of being forwarded with or without adjustment, at the border routers between levels. This may isolate traffic in a particular VLAN, Ethertype, or other distinguishable traffic type, such as particular types of multi-destination frames, or any combination of such characteristics, in an area for security or other purposes.

There may be numerous advantages to the above-described isolation. For example, broadcast or multicast frames may be used to access many services. If servers or proxies for such servers are included in an area, then the broadcast or multicast frames to access that service may be confined to that area. In an overall set of such contiguous switches using multi-level routing with K areas, this may reduce directory related multi-destination traffic within each area by a factor of K.

Each of FIGS. 5 and 6 shows an illustrative process that may be performed by a border link-state router to process data packets, in accordance with some embodiments.

Referring to FIG. 5, at step 400, a border link-state router connecting different areas may receive a packet to be transmitted. At step 405, the router may examine one or more fields in the packet that the router has been configured to examine, and may determine if these fields include a designated value or a value in a designated range of values. If such conditions are satisfied, the packet may be discarded at step 415. Otherwise, the packet may be forwarded at step 410.

Referring to FIG. 6, at step 500, a border link-state router connecting different areas may receive a packet to be transmitted. At step 505, the router may extract one or more values from one or more fields in the packet that the router has been configured to map, and may map the values of those fields to new possibly different values and store the new possibly different values back into the same fields in the packet. At step 510, the router may forward the packet.

While specific examples of techniques for processing data packets are shown in FIGS. 5 and 6 and described above, it should be appreciated that aspects of the present disclosure are not limited to any particular example or implementation. For instance, the flows in FIGS. 5 and 6 may be combined so that some packets may be dropped, while other packets may be forwarded. Furthermore, in those packets forwarded, some fields may be mapped.

The inventor has further appreciated and recognized that different areas may have different MTU (Maximum Transmission Unit) sizes, so that some areas may accommodate large frames but other areas may accommodate only small frames. For example, some areas that have primarily user access stations may be have a limit of 1512 bytes per frame, or some suitable limit that is not significantly more than 1512 bytes per frame. As another example, areas that are used for Data Centers on the same network may accommodate larger frames used by Fiber Channel over Ethernet (FCoE) for storage system access, or even larger 9K byte jumbo frames that are sometimes used for more efficient high bandwidth communications.

In some embodiments, where areas have different MTUs, frames that are too large for an area may be blocked when the frames arrive at a border of the area. In some further embodiments, a large frame may be fragmented into pieces small enough to be accommodated by areas with smaller MTUs.

Following below are more detailed descriptions of various concepts related to, and embodiments of, inventive systems, methods, and apparatus for multi-level switching. It should be appreciated that various concepts introduced above and discussed in greater detail below may be implemented in any of numerous ways, as the disclosed concepts are not limited to any particular manner of implementation. For instance, the present disclosure is not limited to the particular arrangements of components shown in the various figures, as other arrangements may also be suitable. Such examples of specific implementations and applications are provided solely for illustrative purposes. For instance, while some examples involving two levels of switching are discussed herein, it should be appreciated that various inventive concepts disclosed herein may also be implemented in an arrangement having three or more levels.

A destination or source “address” (or “label”) may, in some instances, be an address or label that is extended or replaced by a VLAN label (which, in some implementations, may be a suitable 12-bit quantity) or some other suitable fine-grained label (e.g., a suitable 24-bit quantity). The words “forward” and “route” are used interchangeably herein to describe the movement of units of data through a network. The words “packet” and “frame” are used interchangeably herein to describe a unit of data moved through a network. In various embodiments, such a unit of data may be augmented or de-augmented with additional information to facilitate movement or other handling.

An example is described below in connection with FIGS. 2-4, in which some of the inventive concepts of the present disclosure are employed, including multi-level routing, aggregated labels, and duplication of labels between areas. This example uses detailed address learning at border routers. However, it should be appreciated that aspects of the present disclosure are not limited to the use of address learning. For example, an alternative technique is discussed below that uses additional fields in packets to store labels.

The example below is based on link state routing, which is a technique used in a network of switches to forward traffic in an area of that network. A switch in the area may have information on some or all other switches in the area. For example, in some embodiments, a first switch may have information regarding connectivity at a second switch, which may indicate a set of one or more third switches with which the second switch detects a directly connection, and a measure of cost of traversing the direct connection between the second switch and each of the one or more third switches. In some further embodiments, every switch in the area may have such connectivity information regarding every other switch in the area. These connections may be called “links” and the connectivity information may be stored in a “link-state database,” which may or may not store other information.

In some embodiments, each switch may maintain a copy of a link-state database. In a quiescent network, these copies may eventually become identical at every switch, which may enable each switch to independently calculate (1) if the location of that destination is known, a next switch to forward a frame towards the frame's destination so that the frame may follow a least-cost path, or a set of next switches if there are equal cost multiple paths (ECMPs) that are associated with the lowest cost, and (2) a distribution tree or trees, or other suitable distribution information, so the switch may forward multi-destination frames appropriately to zero, one, or multiple neighbors.

In some embodiments, connectivity database information may be developed for each link by the switches connected to that link using a protocol local to the link, which protocol may be part of an overall link-state protocol in use. Each switch may originate a part of the link-state database that includes the connectivity to other immediate neighbor switches that the switch detects out its ports. The switch may also store any other suitable information in the link-state database, as aspects of the present disclosure are not limited in this respect. For instance, for TRILL, which is based on the IS-IS link-state routing protocol, a link-state database may include information about the VLANs from which multi-destination traffic is to be received by the switch, information on the BPDU Root Bridge information that the TRILL switch is receiving, and/or any other suitable information.

In some further embodiments, information contributed by each switch in a link-state routing area may be labeled with an identity of an originating switch and a version number, so updates may be reliably distinguished. Such information may be distributed to all other link-state switches in the area by a “reliable flooding” protocol. In some embodiments, reliable flooding may include techniques such as advertisement, on local links by a switch, of the origin and version of each piece of the link-state database held by that switch, and transmission of updates or missing pieces of information to immediate neighbor switches when such advertisement shows that one or more switches on the link is missing such information or updates to such information. Because of the large quantity of information that may be originated by a switch, such information may be fragmented into smaller, more manageable pieces, each of which is versioned separately and may be flooded separately.

The example below has some features similar to those found in TRILL. However, it should be appreciated that the techniques described, such as replacement of a label or labels on a link-state routing level transition, may also be applied to other cases and networks using other protocols.

In the example shown in FIG. 2, the single circles represent level 1 areas with identifying labels having a number larger than 65000. The triple circle in the middle of FIG. 1 represents a level 2 area that connects the level 1 areas. An “R” followed by a single digit represents a router or switch.

In this example, R1 and R2 are in different level 1 areas, and have the same label (say “42”). R3, R4, and R5 are “border routers,” each of which interconnects a level 1 area and a level 2 area. For instance, R3 may report, into area 65003, that R3 has labels 65005, 65007, and 65009 (in addition to R3's own label). Alternatively, R3 may just report that R3 is attached to a neighbor with those labels. As yet another alternative, R3 may advertise that R3 connects to level 2, so that local switches in level 1 may forward data that is out-of-area to R3. In this example, level 1 routers may identify a data frame as being out of area if the data frame is addressed to a destination label over 65000 that is not the local area label.

Assume a frame is being sent from a network device S unicast addressed to another network device D, where S and D are illustrated in the example of FIG. 2. If R1 does not have sufficient information to determine where D is, R1 may flood within all areas by treating the frame as if the frame was a broadcast frame as described below. If R5 does not have sufficient information to determine where D is, R5 may flood within area 65007 by treating the frame as a broadcast frame as described below. Pruning a distribution tree based on factors such as VLAN or some other suitable fine-grained label (e.g., a 24-bit IEEE 802.1 service identifier (I-SID)) may improve efficiency of this flooding.

In this example, R1 may learn a detailed destination address (e.g., a 48-bit MAC address) of the packet received from S is in the area 65007. R1 may add a header summarizing the destination address in the packet as the label 65007, while leaving the detailed destination address in the packet. R1 may then forward the packet (e.g., via additional intermediate routers in the area 65003) to either R3 or R4, depending on which of R3 and R4 appears to be accessible by a least cost path within the area 65003. In some implementations, the header added by R1 may also include a label for R1 as the source label, while leaving in the packet a detailed origin address of S. A border router handling the packet from S may learn the association of the detailed source address and the label R1, if the border router does not already know that association, for purposes of handling a possible return packet from D to S or any other inter-area packet destined for S. Because of this type of learning, this example may be described as using “MAC learning” or “detailed source address learning.”

FIG. 4A shows an illustrative process that may be performed for modifying source addresses. At step 300, a border link-state router connecting different areas receives a packet. At step 305, the router replaces a more specific source label in the packet with an aggregated label representing the source area. The router may also store the more specific source label into another field in the packet. At step 310, the router forwards the packet into an area that is different from the area from which the router received the packet.

Returning to FIG. 2, a border router handling a frame (e.g., R3, R4, or another router in the level 2 area) may route the frame through the level 2 area via a least cost path to a border router between the level 2 area and the destination area 65007 (e.g., R5). If the packet shows label R1 as the origin, then R3 or R4 may also change that to show the origin is the area 65003.

When the packet arrives at R5, R5 may recognize that the destination label is for a level 1 area with which R5 connects. However, in forwarding the packet into the area 65007, R5 may change the destination label from the label for the area 65007 into a more specific label for R2. That may enable the packet to be routed through the area 65007 to R2, which may then deliver the packet to the destination D.

To change the destination label, R5 may look up, in a table, the detailed destination address obtained from a field in the packet. R5 may also find a label for a switch that appears capable of deliver to the detailed destination address. A table from which R5 performs this look up may have entries manually configured or learned by observation of packets being forwarded by R5 from a level 1 area attached to R5 to level 2. As yet another alternative, such entries may be learned through control plane protocols, an example of which is the TRILL ESADI (End Station Address Distribution Information) protocol as described in the TRILL base protocol specifications incorporated by reference above.

FIG. 4B shows an illustrative process that may be performed for modifying destination addresses. At step 350, a border link-state router connecting different areas receives a packet. At step 355, the router replaces an aggregated destination label representing a destination area with a more specific label to a destination within the destination area. In some embodiments, the router may obtain this more specific label though table look up or from another field in the packet. The router may also store the aggregated label being replaced into a field in the packet. In an embodiment in which the more specific label is obtained from a field in the packet, the router may store the aggregated label in the same field or a different field. At step 360, the packet is forwarded into the destination area.

In some embodiments, methods for distributing multi-destination data frames may be included to provide complete network service. Three possible classes of such frames are: (1) broadcast frames, to be delivered to all end stations or all end stations in a VLAN or a VLAN-like subnetwork; (2) multicast frames, to be delivered to a subset of end stations (e.g., those end stations that have indicated interest in a particular multicast group in a VLAN or a VLAN-like subnetwork); and (3) unknown destination unicast frames that, while addressed to a single destination, may be distributed more widely because the location of that destination is unknown.

Distribution of these types of frames may be accomplished through use of distribution trees. With a multi-level routing structure, each area may have limited or no visibility into the internal topology of other areas. Accordingly, one or more distribution trees may be built in each area at each level, and border routers may determine how to connect these trees by forwarding frames between these trees as appropriate.

In various embodiments, different numbers of distribution trees may be used in different areas, or a configured or elected central authority may specify a number of distribution trees across an entire set of multi-level areas. Additionally, least cost with tie breaker logic may be provided to determine at which border router each tree connection will be made between portions of the same tree built at different levels.

In some embodiments, different numbers of trees in different areas may be handled in a manner similar to the election of a Designated RBridge on each link in TRILL. For example, the border routers for a particular level 1 area may elect a Designated Border Router (DBR). Such a DBR may, by default, handle all multi-destination traffic into or out of that area (e.g., by accepting packets from or forwarding packets to a level 2 tree). Alternatively, the DBR may, on a per VLAN or other suitable basis, assign that task to other border routers for the level 1 area.

If a source, such as S shown in the example of FIG. 2 and described above, does not know the label of the destination area for a specific destination address, such as the address of D shown in the example of FIG. 2 and described above, S may flood the frame on a distribution tree within the level 1 area of S. This tree may be pruned based on a VLAN or more fine-grained VLAN-like label. If the VLAN and/or fine-grained VLAN-like label subnetwork of a frame is not intended to be isolated within S's level 1 area, the border router that may forward such frames out of that area may advertise connectivity in that VLAN and/or fine-grained VLAN-like label so that the frame may not be pruned before reaching the border router. The border router may then similarly flood the frame on a level 2 tree in the example discussed above. An appropriate border router for each other level 1 area may pick up the frame and forward the frame on a tree in the respective level 1 area. Similarly, level 2 tree distribution may be pruned if border routers indicate that no switch in the level 1 area or areas to which the routers are connected has any end station in a particular VLAN, fine-grained VLAN-like label, or multi-cast group, or if traffic in a VLAN, fine-grained label, multi-cast group is not being forwarded into that level 1 area or areas by policy.

In some instances, S may determine that the destination of a unicast packet is in the area 65007, so that a packet may traverse the level 1 area 65003 and the level 2 area as unicast. However, when the packet reaches R5, R5 may be unable to map the detailed destination address into the label of a specific router within the area 65007. In that case, the packet may be flooded, but only within area 65007 (e.g., on an appropriately pruned distribution tree). If R5 is a border router handling multi-destination frames between the area 65007 and the level 2 area, such flooding may proceed without risk of flooding the packet back into the level 2 area. However, since the packet was routed to R5 as unicast, it may be that some other border router (say R9) is handling such multi-destination frames. In that case, if R5 just floods the frame into the area 65007 without taking any precautions, the frame may be picked up by R9 and then flooded back into the level 2 area and into other level 1 area, although it is possible that R9 may recognize that the source label is an area label and hence refrain from flooding the packet back into the level 2 area.

For this reason, it may be desirable to indicate in the packet that the packet is being locally flooded only and is not to be forwarded out to level 2. One technique may be to use a flag in the packet. Such a flag bit or other marking, which may be called “do not flood out of area,” may have other uses. Alternatively, some labels may be reserved for roots of trees that are not to be connected between levels. Having such distribution trees where traffic on the trees does not connect between levels or such ways to flag frames may have other advantages. For instance, a first switch encountered by a multi-destination frame, which places the frame on a distribution tree, may choose whether the frame may be constrained to the original area or not, based on any suitable criterion or combination of criteria, including, but not limited to, EtherType or protocol, VLAN, and/or priority.

If it is known that one or more servers of a certain type normally accessed by broadcast or multi-cast messages, such as directory servers or DHCP (Dynamic Host Configuration) servers, or one or more proxies that may access servers of that type, are present in a level 1 area, then multi-destination frames used as any part of a communication with such a server or proxy may be flagged as “do not flood out of area” frames by the first router that encounter the multi-destination frames, or by an end station that has the flagging capability. Alternatively, such frames may be put on a tree not forwarded between levels.

In some implementations of TRILL and similar protocols, information regarding where in a distribution tree a multi-destination frame was injected may be used to perform a “Reverse Path Forwarding Check,” as described below. Frames being propagated by a distribution tree may be more dangerous than unicast frames because forks in the distribution tree may cause copies of the frame to multiply. While this may be desirable in some instances, there may be undesirable results in other instances. For example, if there is a transient loop involving the fork, an excessive number of frame copies may be generated before the loop is resolved, which may lead to clogging at some links even if the frames have a Time to Live (TTL) or the like to limit their lifetimes.

Accordingly, in some embodiments, a Reverse Path Forwarding Check (RPFC) may be used to check if a multi-destination frame is arriving on an expected port given the tree the frame is being distributed on and the switch that injected the frame into that distribution tree. Label changing at link-state routing level boundaries may be taken into account and techniques may be used to preserve the effectiveness of the RPFC to assure loop safety for multi-destination frames.

Examples of techniques are described in connection with FIG. 3, which shows an illustrative network having two level 1 areas, areas 1001 and 1027, and one level 2 area. In this example, a multi-destination frame originates at a source S. For instance, the multi-destination frame may be a broadcast frame or a frame addressed to a destination D, when the location of D is unknown to all routers involved.

In some embodiments, the first router R6 may include a label for R6 as a source label in the frame, so that RPFC may be applied to the distribution of the frame within area 1027.

When that frame is forwarded by R3 or R4 into a distribution tree in the level 2 area, if R3 or R4 simply changes the source label to, for instance, “area 1027,” then the identity of the place in the level 2 area where the frame was injected into the distribution tree may be lost, making an accurate RPFC difficult or impossible. This may be overcome by such techniques as: (1) using only a single router to forward multi-destination frames into the level 2 area and advertising which router this is in a link-state database; (2) having each border router such as R3 or R4 hold a level 2 label for the border router itself, and replacing the source label in the frame when moving from a level 1 area to the level 2 area with the level 2 label of the border router, rather than a label for the source level 1 area; (3) having different border routers, such as R3 and R4, selecting which frames each border router injects into the level 2 area based on some observable characteristic or characteristics of the frames, such as VLAN, and advertising the border router's criterion or criteria in a link-state database, so that other routers in the level 2 area may deduce which border router injected the frame into the level 2 area; or (4) having each border router use only a single tree to inject frames into the level 2 area and advertise which tree in a link-state database. Accordingly, a router in the level 2 area, such as R8, may apply RPFC based on information regarding which level 2 distribution tree the frame is being forwarded on, and the point of injection into that tree may be deduced using one of the above techniques.

When a border router is injecting a multi-destination frame from the level 2 area into a level 1 distribution tree for some other level 1 area, a similar situation may arise. However, if technique (2) above was used at the transition from level 1 into level 2, a border router may canonicalize the source label for the frame to be a label for the origin level 1 area rather than a specific border router from that area if address learning is being used at the ultimate destination (e.g., as in TRILL, SPB, or similar systems). As a result, the label for the specific border router that is performing the level 2 to level 1 transition of the frame may not be stored into a source field in the frame and may no longer be available for those protocols after transfer from level 2 to level 1.

Thus, the following three techniques may be more suitable for use with such a frame in such a level 1 area: (1) having only a single border router inject multi-destination frames into a particular level 1 area and advertising which border router is so designated in a link-state database; (2) having different border routers such as R1 and R2 select which frames the border routers inject into level 1 from level 2 based on some observable characteristic or characteristics of the frames, such as VLAN, and advertising each border router's criterion or criteria in a link-state database, so that routers in level 1 may deduce which border router injected a particular frame into level 1; or (3) having each border router use only a single tree to inject multi-destination frames into level 1 and advertise which tree in a link-state database. Accordingly, a router in level 1, such as R7, may apply RPFC based on information regarding which level 1 distribution tree the frame is being forwarded on and the point of injection into that tree may be deduced using one of these three techniques.

As an alternative to border routers performing address learning as discussed in the above example, fields may be added to packets so that packet can indicate the correspondence between detailed addresses and both the label of the area and the label of the specific switch for the origin and destination of the frame. In such an embodiment, routers inside a level 1 area may learn not just an aggregated label corresponding to an area where a destination detailed address resides but also a more specific label of the switch to which the destination is attached within that destination area.

With this technique, when a specific source label in a packet is replaced with an aggregated area source label, that aggregated label may come from a field in the packet where the aggregated label was stored by an originating switch or an originating end station. For example, in some implementations, the field holding the specific source label and the field holding the aggregated source label may be swapped. Similarly, when an aggregated destination area label in a packet is replaced with a specific destination label for forwarding into the destination area, the specific destination label may come from a field in the packet where the specific destination label was stored by an originating switch or an originating end station. For example, in some implementations, the field holding the aggregated destination label and the field holding the specific destination label may be swapped.

FIG. 7 shows, schematically, an illustrative computer 1000 on which various inventive aspects of the present disclosure may be implemented. The computer 1000 includes a processor or processing unit 1001 and a memory 1002 that may include volatile and/or non-volatile memory. The computer 1000 may also include storage 1005 (e.g., one or more disk drives) in addition to the system memory 1002. The memory 1002 may store one or more instructions to program the processing unit 1001 to perform any of the functions described herein. The memory 1002 may also store one more application programs and/or Application Programming Interface (API) functions.

The computer 1000 may have one or more input devices and/or output devices, such as devices 1006 and 1007 illustrated in FIG. 7. These devices may be used, among other things, to present a user interface. Examples of output devices that may be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output. Examples of input devices that may be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets. As another example, a computer may receive input information through speech recognition or in other audible format.

As shown in FIG. 7, the computer 1000 may also comprise one or more network interfaces (e.g., the network interface 1010) to enable communication via various networks (e.g., the network 1020). Examples of networks include a local area network or a wide area network, such as an enterprise network or the Internet. Such networks may be based on any suitable technology and may operate according to any suitable protocol and may include wireless networks, wired networks or fiber optic networks. Examples include, but are not limited to, bridged LANs and RBridged campuses.

The computer 1000 may be used to implement a switch device that receives and transmits frames of data through network interfaces. Examples of switch devices include, but are not limited to, the following:

-   -   Bridges: For example, a bridge device may be generally         conformant to any of IEEE (Institute of Electrical and         Electronics Engineers) 802.1 bridging standards, including, but         not limited to, IEEE 802.1D-2004, “IEEE Standard for Local and         Metropolitan Area Networks/Media Access Control (MAC) Bridges,”         and IEEE 802.1Q-2011, “Standard for Local and Metropolitan Area         Networks/Virtual Bridged Local Area Networks,” which are         incorporated herein by reference. It should be appreciated that         a device conformant to a future IEEE 802.1 bridging standard, or         a bridging standard developed by some other standard setting         organization, may also be considered a “bridge,” as aspects of         the present disclosure are not limited to conformance to any         particular bridging standard, nor to conformance to any standard         at all. For example, a bridge device may be a device conformant         to a specification for Shortest Path Bridges, which is being         developed as an extension of IEEE 802.1, and uses a link state         protocol to configure bridging mechanisms.     -   RBridges: For example, an RBridge device may be generally         conformant to IETF (Internet Engineering Task Force) TRILL         (TRansparent Interconnection of Lots of Links) standard as set         out in IETF RFCs 6325, 6326, and 6327, which are incorporated         herein by reference. Again, it should be appreciated that         aspects of the present disclosure are not limited to conformance         to any particular standard or version of a standard for an         RBridge device, nor to conformance to any standard at all.     -   Routers: For example, a router device may forward or deliver         data frames based on Layer 3 addresses specified in the frames.         Because local networks use Layer 2 addresses to deliver a frame         to a next router or final destination, a router may, on a         per-router-hop basis, map Layer 3 addresses to Layer 2         addresses. In some instances, the router may change an outer         Layer 2 address of the data frame to transport the frame to the         next router or final destination.     -   Any other network devices adapted to route, forward, and/or         deliver frames of data to one or more target interfaces (i.e.,         network interfaces to which the frames are addressed), or at         least attempt to route, forward, and/or deliver the frames         closer to the target interfaces.     -   Any combination of the above. This includes, for example, a         BRouter, which is a device adapted to route frames whose Layer 3         addressing protocols are understood by the BRouter, and to         bridge all other frames.

Finally, the computer 1000 may be a mobile device that is sufficiently small so as to be carried by a user (e.g., held in a hand of the user). Examples of mobile devices include, but are not limited to, mobile phones, pagers, portable media players, e-book readers, handheld game consoles, personal digital assistants (PDAs) and tablet computers. In some instances, the weight of a mobile device may be at most one pound, and/or the largest dimension of a mobile device may be at most six inches. Additionally, a mobile device may include features that enable the user to use the device at diverse locations. For example, a mobile device may include a power storage device (e.g., battery) so that it may be used for some duration without being plugged into a power outlet. As another example, a mobile device may include a wireless network interface configured to provide a network connection without being physically connected to a network connection point.

Having thus described several aspects of at least one embodiment of this invention, it is to be appreciated that various alterations, modifications, and improvements may readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and scope of the invention. Accordingly, the foregoing description and drawings are by way of example only.

The above-described embodiments of the present invention may be implemented in any of numerous ways. For example, the embodiments may be implemented using hardware, software or a combination thereof. When implemented in software, the software code may be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers.

Also, the various methods or processes outlined herein may be coded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software may be written using any of a number of suitable programming languages and/or programming or scripting tools, and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.

In this respect, the invention may be embodied as a non-transitory computer readable medium (or multiple computer readable media) (e.g., a computer memory, one or more floppy discs, compact discs, optical discs, magnetic tapes, flash memories, circuit configurations in Field Programmable Gate Arrays or other semiconductor devices, or other non-transitory, tangible computer storage medium) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments of the invention discussed above. The computer readable medium or media may be transportable, such that the program or programs stored thereon may be loaded onto one or more different computers or other processors to implement various aspects of the present invention as discussed above.

The terms “program” or “software” are used herein in a generic sense to refer to any type of computer code or set of computer-executable instructions that may be employed to program a computer or other processor to implement various aspects of the present invention as discussed above. Additionally, it should be appreciated that according to one aspect of this embodiment, one or more computer programs that when executed perform methods of the present invention need not reside on a single computer or processor, but may be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the present invention.

Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed as desired in various embodiments.

Also, data structures may be stored in computer-readable media in any suitable form. For simplicity of illustration, data structures may be shown to have fields that are related through location in the data structure. Such relationships may likewise be achieved by assigning storage for the fields with locations in a computer-readable medium that conveys relationship between the fields. However, any suitable mechanism may be used to establish a relationship between information in fields of a data structure, including through the use of pointers, tags or other mechanisms that establish relationship between data elements.

Various aspects of the present invention may be used alone, in combination, or in a variety of arrangements not specifically discussed in the embodiments described in the foregoing and is therefore not limited in its application to the details and arrangement of components set forth in the foregoing description or illustrated in the drawings. For example, aspects described in one embodiment may be combined in any manner with aspects described in other embodiments.

Also, the invention may be embodied as a method, of which an example has been provided. The acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.

Use of ordinal terms such as “first,” “second,” “third,” etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements. Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” “having,” “containing,” “involving,” and variations thereof herein, is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. 

1. A method for use by at least one network device operating in a network comprising a plurality of link-state routing areas, the at least one network device connecting a first link-state routing area of the plurality of link-state routing areas with at least one other link-state routing area of the plurality of link-state routing areas, the method comprising acts of: (a) receiving at least one data frame from the first link-state routing area; (b) determining whether the at least one data frame is to be transmitted to a second link-state routing area of the plurality of link-state routing areas that is different from the first link-state routing area; and (c) determining whether to modify at least one field of the at least one data frame prior to transmitting the at least one data frame based at least in part on a result of the act (b).
 2. The method of claim 1, wherein the plurality of link-state routing areas is arranged in multiple levels, the first link-state routing area being at a first level, and wherein the act (b) comprises determining whether the second link-state routing area is at a second level different from the first level.
 3. The method of claim 1, further comprising: (d) when it is determined at the act (c) that the at least one field of the at least one data frame is to be modified, replacing at least one first value of the at least one field with at least one second value corresponding to the at least one first value.
 4. The method of claim 3, wherein the at least one first value comprises a first source address identifying at least one source network device from which the at least one frame originated, and wherein the at least one second value comprises a second source address identifying a plurality of network devices comprising the at least one source network device.
 5. The method of claim 4, wherein the second source address identifies the first link-state routing area.
 6. The method of claim 4, further comprising: (e) determining whether the at least one data frame originated from the first link-state routing area, wherein the act (d) is performed when it is determined that the at least one data frame originated from the first link-state routing area.
 7. The method of claim 3, wherein the at least one first value comprises a first destination address identifying a plurality of network devices comprising at least one destination network device to which the at least one frame is to be transmitted, and wherein the at least one second value comprises a second destination address identifying the at least one destination network device. 8-28. (canceled)
 29. A method for use by at least one network device operating in a network comprising a plurality of link-state routing areas, the at least one network device connecting a first link-state routing area of the plurality of link-state routing areas with at least one other link-state routing area of the plurality of link-state routing areas, the method comprising acts of: (a) receiving at least one data frame from the first link-state routing area; (b) determining whether the at least one data frame is to be transmitted to a second link-state routing area of the plurality of link-state routing areas that is different from the first link-state routing area; and (c) determining whether to block the at least one data frame based at least in part on a result of the act (b) and at least one field of the at least one data frame.
 30. The method of claim 29, wherein the plurality of link-state routing areas is arranged in multiple levels, the first link-state routing area being at a first level, and wherein the act (b) comprises determining whether the second link-state routing area is at a second level different from the first level.
 31. The method of claim 29, wherein the at least one network device is a border router operating according to a multi-level link-state routing protocol.
 32. The method of claim 31, wherein the multi-level link-state routing protocol is based on Intermediate System to Intermediate System (IS-IS).
 33. The method of claim 31, wherein the multi-level link-state routing protocol is based on Open Shortest Path First (OSPF).
 34. The method of claim 29, wherein the at least one network device is a border router operating according to a routing protocol based on an Internet Engineering Task Force (IETF) Transparent Interconnection of Lots of Links (TRILL) protocol.
 35. The method of claim 29, wherein the at least one network device is a border router operating according to a routing protocol based on an Institute of Electrical and Electronic Engineers (IEEE) Shortest Path Bridging protocol. 36-47. (canceled)
 48. An apparatus comprising at least one network device configured to operate in a network comprising a plurality of link-state routing areas, the at least one network device further configured to connect a first link-state routing area of the plurality of link-state routing areas with at least one other link-state routing area of the plurality of link-state routing areas, the at least one network device further configured to perform acts of: (a) receiving at least one data frame from the first link-state routing area; (b) determining whether the at least one data frame is to be transmitted to a second link-state routing area of the plurality of link-state routing areas that is different from the first link-state routing area; and (c) determining whether to modify at least one field of the at least one data frame prior to transmitting the at least one data frame based at least in part on a result of the act (b).
 49. The apparatus of claim 48, wherein the plurality of link-state routing areas is arranged in multiple levels, the first link-state routing area being at a first level, and wherein the at least one network device is configured to perform the (b) at least in part by determining whether the second link-state routing area is at a second level different from the first level.
 50. The apparatus of claim 48, wherein the at least one network device is further configured to perform an act of: (d) when it is determined at the act (c) that the at least one field of the at least one data frame is to be modified, replacing at least one first value of the at least one field with at least one second value corresponding to the at least one first value.
 51. The apparatus of claim 50, wherein the at least one first value comprises a first source address identifying at least one source network device from which the at least one frame originated, and wherein the at least one second value comprises a second source address identifying a plurality of network devices comprising the at least one source network device.
 52. The apparatus of claim 51, wherein the second source address identifies the first link-state routing area.
 53. The apparatus of claim 51, wherein the at least one network device is further configured to perform an act of: (e) determining whether the at least one data frame originated from the first link-state routing area, wherein the at least one network device is configured to perform the act (d) when it is determined that the at least one data frame originated from the first link-state routing area.
 54. The apparatus of claim 50, wherein the at least one first value comprises a first destination address identifying a plurality of network devices comprising at least one destination network device to which the at least one frame is to be transmitted, and wherein the at least one second value comprises a second destination address identifying the at least one destination network device. 55-75. (canceled)
 76. An apparatus comprising at least one network device configured to operate in a network comprising a plurality of link-state routing areas, the at least one network device further configured to connect a first link-state routing area of the plurality of link-state routing areas with at least one other link-state routing area of the plurality of link-state routing areas, the apparatus further configured to perform acts of: (a) receiving at least one data frame from the first link-state routing area; (b) determining whether the at least one data frame is to be transmitted to a second link-state routing area of the plurality of link-state routing areas that is different from the first link-state routing area; and (c) determining whether to block the at least one data frame based at least in part on a result of the act (b) and at least one field of the at least one data frame.
 77. The apparatus of claim 76, wherein the plurality of link-state routing areas is arranged in multiple levels, the first link-state routing area being at a first level, and wherein the act (b) comprises determining whether the second link-state routing area is at a second level different from the first level.
 78. The apparatus of claim 76, wherein the at least one network device is a border router operating according to a multi-level link-state routing protocol.
 79. The apparatus of claim 78, wherein the multi-level link-state routing protocol is based on Intermediate System to Intermediate System (IS-IS).
 80. The apparatus of claim 78, wherein the multi-level link-state routing protocol is based on Open Shortest Path First (OSPF).
 81. The apparatus of claim 76, wherein the at least one network device is a border router operating according to a routing protocol based on an Internet Engineering Task Force (IETF) Transparent Interconnection of Lots of Links (TRILL) protocol.
 82. The apparatus of claim 76, wherein the at least one network device is a border router operating according to a routing protocol based on an Institute of Electrical and Electronic Engineers (IEEE) Shortest Path Bridging protocol. 83-94. (canceled) 